package org.wu.framework.lazy.orm.core.persistence.reverse.lazy.vue;

import org.wu.framework.lazy.orm.core.config.ReverseEngineering;
import org.wu.framework.lazy.orm.core.persistence.reverse.JavaReverseEngineering;
import org.wu.framework.lazy.orm.core.persistence.reverse.ReverseClassLazyTableEndpoint;

/**
 * vue页面生成工厂
 */
public final class DefaultVueFactory {


    //######################################################################################################################

    /**
     * 创建默认的vue 分页页面
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @return JavaReverseEngineering
     */
    public static DefaultVuePage defaultVuePage(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint, ReverseEngineering reverseEngineering) {

        return new DefaultVuePage(reverseClassLazyTableEndpoint, reverseEngineering);
    }

    /**
     * 创建默认vue 分页页面文件
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @param resourceFilePrefix            生成文件地址
     */
    public static void defaultVuePageCreateJavaFile(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                              ReverseEngineering reverseEngineering,
                                                              String resourceFilePrefix) {
        JavaReverseEngineering javaReverseEngineering = defaultVuePage(reverseClassLazyTableEndpoint, reverseEngineering);
        javaReverseEngineering.createJavaFile(resourceFilePrefix);
    }

    /**
     * 创建默认vue 分页页面code
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     */
    public static String defaultVuePageCreateJavaCode(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                                ReverseEngineering reverseEngineering) {
        JavaReverseEngineering javaReverseEngineering = defaultVuePage(reverseClassLazyTableEndpoint, reverseEngineering);
        return javaReverseEngineering.createJavaContextCode();
    }

    //######################################################################################################################


    //######################################################################################################################

    /**
     * 创建默认的add 页面
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @return JavaReverseEngineering
     */
    public static JavaReverseEngineering defaultVueEdit(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint, ReverseEngineering reverseEngineering) {

        return new DefaultVueEdit(reverseClassLazyTableEndpoint, reverseEngineering);
    }

    /**
     * 创建默认add 页面文件
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @param resourceFilePrefix            生成文件地址
     */
    public static void defaultVueEditCreateJavaFile(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                    ReverseEngineering reverseEngineering,
                                                    String resourceFilePrefix) {
        JavaReverseEngineering javaReverseEngineering = defaultVueEdit(reverseClassLazyTableEndpoint, reverseEngineering);
        javaReverseEngineering.createJavaFile(resourceFilePrefix);
    }

    /**
     * 创建默认add 页面code
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     */
    public static String defaultVueEditCreateJavaCode(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                                ReverseEngineering reverseEngineering) {
        JavaReverseEngineering javaReverseEngineering = defaultVueEdit(reverseClassLazyTableEndpoint, reverseEngineering);
        return javaReverseEngineering.createJavaContextCode();
    }

    //######################################################################################################################



    //######################################################################################################################

    /**
     * 创建默认的upload 页面
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @return JavaReverseEngineering
     */
    public static JavaReverseEngineering defaultVueUpload(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint, ReverseEngineering reverseEngineering) {

        return new DefaultVueUpload(reverseClassLazyTableEndpoint, reverseEngineering);
    }

    /**
     * 创建默认upload 页面文件
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @param resourceFilePrefix            生成文件地址
     */
    public static void defaultVueUploadCreateJavaFile(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                    ReverseEngineering reverseEngineering,
                                                    String resourceFilePrefix) {
        JavaReverseEngineering javaReverseEngineering = defaultVueUpload(reverseClassLazyTableEndpoint, reverseEngineering);
        javaReverseEngineering.createJavaFile(resourceFilePrefix);
    }

    /**
     * 创建默认Upload 页面code
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     */
    public static String defaultVueUploadCreateJavaCode(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                      ReverseEngineering reverseEngineering) {
        JavaReverseEngineering javaReverseEngineering = defaultVueUpload(reverseClassLazyTableEndpoint, reverseEngineering);
        return javaReverseEngineering.createJavaContextCode();
    }

    //######################################################################################################################



    //######################################################################################################################

    /**
     * 创建默认的Menu 页面
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @return JavaReverseEngineering
     */
    public static JavaReverseEngineering defaultVueMenu(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint, ReverseEngineering reverseEngineering) {

        return new DefaultVueMenu(reverseClassLazyTableEndpoint, reverseEngineering);
    }

    /**
     * 创建默认Menu 页面文件
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @param resourceFilePrefix            生成文件地址
     */
    public static void defaultVueMenuCreateJavaFile(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                      ReverseEngineering reverseEngineering,
                                                      String resourceFilePrefix) {
        JavaReverseEngineering javaReverseEngineering = defaultVueMenu(reverseClassLazyTableEndpoint, reverseEngineering);
        javaReverseEngineering.createJavaFile(resourceFilePrefix);
    }

    /**
     * 创建默认 Menu 页面code
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     */
    public static String defaultVueMenuCreateJavaCode(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                        ReverseEngineering reverseEngineering) {
        JavaReverseEngineering javaReverseEngineering = defaultVueMenu(reverseClassLazyTableEndpoint, reverseEngineering);
        return javaReverseEngineering.createJavaContextCode();
    }

    //######################################################################################################################


    //######################################################################################################################

    /**
     * 创建默认的api 页面
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @return JavaReverseEngineering
     */
    public static JavaReverseEngineering defaultVueApi(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint, ReverseEngineering reverseEngineering) {

        return new DefaultVueApi(reverseClassLazyTableEndpoint, reverseEngineering);
    }

    /**
     * 创建默认api 页面文件
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     * @param resourceFilePrefix            生成文件地址
     */
    public static void defaultVueApiCreateJavaFile(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                   ReverseEngineering reverseEngineering,
                                                   String resourceFilePrefix) {
        JavaReverseEngineering javaReverseEngineering = defaultVueApi(reverseClassLazyTableEndpoint, reverseEngineering);
        javaReverseEngineering.createJavaFile(resourceFilePrefix);
    }

    /**
     * 创建默认info 页面code
     *
     * @param reverseClassLazyTableEndpoint 表结构数据
     * @param reverseEngineering            逆向工程配置
     */
    public static String defaultVueInfoCreateJavaCode(ReverseClassLazyTableEndpoint reverseClassLazyTableEndpoint,
                                                                ReverseEngineering reverseEngineering) {
        JavaReverseEngineering javaReverseEngineering = defaultVueApi(reverseClassLazyTableEndpoint, reverseEngineering);
        return javaReverseEngineering.createJavaContextCode();
    }

    //######################################################################################################################
}
